home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / basic / Mildred.lha / lha / ZoomDemo.lha / ZoomTest.ascii < prev    next >
Text File  |  1999-03-27  |  2KB  |  79 lines

  1.  
  2. WBStartup
  3. NoCli
  4.  
  5. DEFTYPE.l
  6.  
  7. .initgraphics
  8. MBitmap 1,320,240
  9. MBitmap 0,320*2,240*2
  10.  
  11. Mc2pWindow 0,320,240                ; Setup structures for c2p conversions.
  12.  
  13. InitBank 0,320*240,$10002           ; Get some free CHIP memory.
  14. CludgeBitMap 0,320,240,8,Bank(0)    ; And make it a planar bitmap.
  15. LoadBitMap 0,"ZoomPic7.IFF",0        ; Get a pic
  16. MPlanar16ToBitmap 0,Bank(0),320,240,320,240 ; Make it chunky
  17. MBlockScroll 0,0,320,240,0,240
  18. MBlockScroll 0,0,320,240*2,320,0
  19.  
  20. Dim scrtaglst.TagItem(7)            ; All this stuff sets up our
  21. scrtaglst(0)\ti_Tag = #SA_Left      ; Taglist for the screen we
  22. scrtaglst(0)\ti_Data = 0          ; want. As you can see, it's
  23. scrtaglst(1)\ti_Tag = #SA_Depth     ; rather non-standard.
  24. scrtaglst(1)\ti_Data = 8            ; it doesn't have to be, it's
  25. scrtaglst(2)\ti_Tag = #SA_Width     ; just that this routine needs
  26. scrtaglst(2)\ti_Data = 320          ; a larger screen to avoid
  27. scrtaglst(3)\ti_Tag = #SA_Height    ; clipping.
  28. scrtaglst(3)\ti_Data = 240
  29. scrtaglst(4)\ti_Tag = #SA_BitMap
  30. scrtaglst(4)\ti_Data = Addr BitMap (0)
  31. scrtaglst(5)\ti_Tag = #SA_ShowTitle
  32. scrtaglst(5)\ti_Data = 0
  33. scrtaglst(6)\ti_Tag = #SA_Draggable
  34. scrtaglst(6)\ti_Data = 0
  35. scrtaglst(7)\ti_Tag = #TAG_END      ; The most important tag of them all.
  36.  
  37.  
  38. ScreenTags 0,"MildredDEMO",&scrtaglst(0) ; Open our intuition screen.
  39.  
  40. ShowPalette 0                       ; Attach our palette to the screen.
  41.  
  42. MUseBitmap 1                        ; Tell Mildred to use our main
  43.                                     ; chunky buffer (just in case)
  44. mag.q=1
  45. its.l=0
  46. magdirection.q=1.5
  47. ResetTimer
  48. Repeat                              ; Repeat our mainloop ....
  49.   If mag+magdirection>240*2 OR mag+magdirection<1 Then magdirection=-magdirection
  50.   mag+magdirection
  51.   SourceX.q=0
  52.   SourceY.q=0
  53.   OpWidth.w=320
  54.   OpHeight.w=240
  55.   SourceXAdder.q=mag/240
  56.   SourceYAdder.q=mag/240
  57.   DestX.w=0
  58.   DestY.w=0
  59.   MZoom SourceX,SourceY,SourceXAdder,SourceYAdder,DestX,DestY,OpWidth,OpHeight,False,0
  60.  
  61.   Mc2p Bank(0)                      ; Convert our chunky buffer to
  62.   its+1
  63.  
  64. Until Joyb(0)<>0 OR Joyb(1)<>0 OR RawStatus($45)
  65. t=Timer
  66. t=Max(t,1)
  67. its=Max(its,1)
  68. a.q=50.0/(t/its)
  69. WbToScreen 1
  70. Window 2,16,16,400,60,0,"Test results",1,0
  71. WindowOutput 2
  72. NPrint a," frames per second"
  73. NPrint " "
  74. NPrint "Press mouse/joy button..."
  75. VWait 20
  76. Repeat
  77. Until Joyb(0)<>0 OR Joyb(1)<>0 OR RawStatus($45)
  78.  
  79.